// #ifdef H5
export default {
    name: "Keypress",
    props: {
        disable: {
            type: Boolean,
            default: false
        }
    },
    mounted() {
        const keyNames = {
            esc: ["Esc", "Escape"],
            tab: "Tab",
            enter: "Enter",
            space: [" ", "Spacebar"],
            up: ["Up", "ArrowUp"],
            left: ["Left", "ArrowLeft"],
            right: ["Right", "ArrowRight"],
            down: ["Down", "ArrowDown"],
            delete: ["Backspace", "Delete", "Del"]
        };
        const listener = ($event) => {
            if (this.disable) {
                return;
            }
            const keyName = Object.keys(keyNames).find((key) => {
                const keyName = $event.key;
                const value = keyNames[key];
                return value === keyName || (Array.isArray(value) && value.includes(keyName));
            });
            if (keyName) {
                // 避免和其他按键事件冲突
                setTimeout(() => {
                    this.$emit(keyName, {});
                }, 0);
            }
        };
        document.addEventListener("keyup", listener);
        // this.$once('hook:beforeDestroy', () => {
        //   document.removeEventListener('keyup', listener)
        // })
    },
    render: () => {}
};
// #endif
